"""
正则
先取大   先取到大的div（25个电影的div）
再取小   通过遍历取到25个div  在进行正则提取四个字段

小tips
看一个标签是否可以作为你的正则表达式  直接复制 然后再控制台搜索 看数量
"""
# 单页数据爬取函数
import json
import time
import requests
import re

def first_crawl(start):
    # 起始url
    url=f"https://movie.douban.com/top250?start={start*25}&filter"
#     请求头
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36"
    }
#     发送请求
    response=requests.get(url=url,headers=headers)
    datas=response.content.decode()
    print(datas)
    # 因为我们匹配的数据是有换行的数据
    # 救额拿到了 我们的 前25个电影的div
    alldata=re.findall('<div class="item">(.*?)</li>',datas,re.S)
    # print(alldata,len(alldata))
    for data in alldata:
        title=re.findall('<span class="title">(.*?)</span>',data,re.S)[0]
        href=re.findall('"(https://movie.douban.com/subject/\d*/)">',data,re.S)[0]
        score=re.findall('="v:average">(.*?)</span>',data,re.S)[0]
        breif=re.findall('class="inq">(.*?)</span>',data,re.S)
        if breif==[]:
            breif=["这个电影没有影评"]
        print(title,score,href,breif)
        # save_data(title,score,href,breif)
    time.sleep(2)
# 保存数据函数
def save_data(title,score,href,breif):
    # type dict
    with open("豆瓣4.json","a",encoding="utf-8")as file1:
            item={
                "title":title,
                "score":score,
                "href":href,
                "breif":breif[0]
            }
            strdata = json.dumps(item, ensure_ascii=False, indent=3)
            file1.write(strdata+",\n")

if __name__ == '__main__':
    for i in range(10):
        first_crawl(i)







